package com.jinhongone.pattern.behavior.interpret;

/**
 * @author jinho
 * @className Plus
 * @description 加法表达式（非终结表达式） -表达文法规则
 * @date 2025/4/21 10:19
 */
public class Plus extends AbstractExpression {

    //左侧表达式
    private AbstractExpression left;
    //右侧表达式
    private AbstractExpression right;

    public Plus(AbstractExpression left, AbstractExpression right) {
        this.left = left;
        this.right = right;
    }

    @Override
    public int interpret(Context context) {
        //通过解析左/右侧表达式在通过【+】运算符进行计算。
        return left.interpret(context) + right.interpret(context);
    }

    @Override
    public String toString() {
        return "(" + left.toString() + "+" + right.toString() + ')';
    }
}
